package com.aiyige.model.moment.backup;


import com.aiyige.setup.util.SetupUtil;

public class TagBackup {

    /**
     * 标签ID
     */
    private String id;
    private String sourceId;
    /**
     * 标签名
     */
    private String name;
    String groupType;
    String groupName;
    String subGroupType;
    String subGroupName;
    String creator;
    Long createTime;
    Long updateTime;
    String channel;
    boolean userSelect;

    public TagBackup() {
    }

    private TagBackup(Builder builder) {
        setId(builder.id);
        setSourceId(builder.sourceId);
        setName(builder.name);
        setGroupType(builder.groupType);
        setGroupName(builder.groupName);
        setSubGroupType(builder.subGroupType);
        setSubGroupName(builder.subGroupName);
        setCreator(builder.creator);
        setCreateTime(builder.createTime);
        setUpdateTime(builder.updateTime);
        setChannel(builder.channel);
        setUserSelect(builder.userSelect);
    }

    public String getSourceId() {
        return sourceId;
    }

    public void setSourceId(String sourceId) {
        this.sourceId = sourceId;
    }

    public static Builder newBuilder() {
        return new Builder();
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getGroupType() {
        return groupType;
    }

    public void setGroupType(String groupType) {
        this.groupType = groupType;
    }

    public String getGroupName() {
        return groupName;
    }

    public void setGroupName(String groupName) {
        this.groupName = groupName;
    }

    public String getSubGroupType() {
        return subGroupType;
    }

    public void setSubGroupType(String subGroupType) {
        this.subGroupType = subGroupType;
    }

    public String getSubGroupName() {
        return subGroupName;
    }

    public void setSubGroupName(String subGroupName) {
        this.subGroupName = subGroupName;
    }

    public String getCreator() {
        return creator;
    }

    public void setCreator(String creator) {
        this.creator = creator;
    }

    public Long getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Long createTime) {
        this.createTime = createTime;
    }

    public Long getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Long updateTime) {
        this.updateTime = updateTime;
    }

    public String getChannel() {
        return channel;
    }

    public void setChannel(String channel) {
        this.channel = channel;
    }

    public boolean isUserSelect() {
        return userSelect;
    }

    public void setUserSelect(boolean userSelect) {
        this.userSelect = userSelect;
    }


    public static final class Builder {
        private String id;
        private String sourceId;
        private String name;
        private String groupType;
        private String groupName;
        private String subGroupType;
        private String subGroupName;
        private String creator;
        private Long createTime;
        private Long updateTime;
        private String channel;
        private boolean userSelect;

        private Builder() {
            channel = SetupUtil.CHANNEL_ALL;
        }

        public Builder id(String val) {
            id = val;
            return this;
        }

        public Builder sourceId(String val) {
            sourceId = val;
            return this;
        }

        public Builder name(String val) {
            name = val;
            return this;
        }

        public Builder groupType(String val) {
            groupType = val;
            return this;
        }

        public Builder groupName(String val) {
            groupName = val;
            return this;
        }

        public Builder subGroupType(String val) {
            subGroupType = val;
            return this;
        }

        public Builder subGroupName(String val) {
            subGroupName = val;
            return this;
        }

        public Builder creator(String val) {
            creator = val;
            return this;
        }

        public Builder createTime(Long val) {
            createTime = val;
            return this;
        }

        public Builder updateTime(Long val) {
            updateTime = val;
            return this;
        }

        public Builder channel(String val) {
            channel = val;
            return this;
        }

        public Builder userSelect(boolean val) {
            userSelect = val;
            return this;
        }

        public TagBackup build() {
            return new TagBackup(this);
        }
    }
}
